package com.hmy.contract.bo.response.contract;

import com.hmy.ccp.common.response.BaseResponse;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
public class OrderDetailResponse extends BaseResponse {

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 订单业务单号
     */
    private String orderNo;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 订单状态描述
     */
    private String statusDesc;

    /**
     * 合同单号
     */
    private String contractNo;

    /**
     * 商机id
     */
    private String opportunityId;

    /**
     * 商机编号
     */
    private String opportunityNo;
    /**
     * 商机名称
     */
    private String opportunityName;
    /**
     * 销售经理id
     */
    private Long saleManagerId;

    /**
     * 客户经理部门id
     */
    private Long saleManagerDepartId;

    /**
     * 销售经理name
     */
    private String saleManagerName;

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 客户name
     */
    private String customerName;

    /**
     * 客户编号
     */
    private String customerNo;

    /**
     * 客户类型 0:个人客户,1:企业;
     */
    private String customerType;

    /**
     * 客户类型别名 0:个人客户,1:企业;
     */
    private String customerTypeAlias;

    /**
     * 客户信用
     */
    private String customerCredit;

    /**
     * 联系人id
     */
    private Long customerContactorId;

    /**
     * 联系人名称
     */
    private String customerContactorName;

    /**
     * 联系人电话
     */
    private String customerContactorPhone;
    /**
     * 联系人微信
     */
    private String customerContactorWeChatNumber;
    /**
     * 客户地址
     */
    private String customerAddress;
    /**
     * 联系人身份证号
     */
    private String customerContactorIdCardNumber;

    /**
     * 项目id
     */
    private Long projectId;

    /**
     * 工程名称
     */
    private String projectName;

    /**
     * 作业内容
     */
    private String projectContent;


    /**
     * 施工地点
     */
    private String projectAddress;

    /**
     * 首次进场运费(精确到3位小数)
     */
    private BigDecimal initialEntryFreight;

    /**
     * 保证金(精确到3位小数)
     */
    private BigDecimal guaranteeDeposit;

    /**
     * 预计租金(精确到3位小数)
     */
    private BigDecimal estimatedRent;

    /**
     * 预计合同总额(精确到3位小数)
     */
    private BigDecimal estimatedTotalAmount;

    /**
     * 结算方式
     */
    private Integer paymentMethodType;

    /**
     * 结算方式描述
     */
    private String paymentMethodDesc;

    /**
     * 账期类型
     */
    private Integer paymentPeriodType;

    /**
     * 账期类型描述
     */
    private String paymentPeriodDesc;

    /**
     * 账期-后付模式下到账后N天内支付费用;
     */
    private Integer paymentPeriodCycle;

    /**
     * 进退场设备运输方式
     * 出租方运输 10
     * 承租方运输 20
     * 进退场运输方式 {@link com.hmy.order.api.common.enums.OrderTransportationEnum}
     */
    private Integer transportationMethodType;
    /**
     * 进退场设备运输方式
     * 出租方运输 10
     * 承租方运输 20
     * 进退场运输方式 {@link com.hmy.order.api.common.enums.OrderTransportationEnum}
     */
    private String transportationMethodDesc;

    /**
     * 订单设备表
     */
    private List<OrderDeviceDetailResponse> orderDeviceDetails;

    /**
     * 订单首次进场表
     */
    private List<OrderInitialDeviceDetailResponse> orderInitialDeviceDetails;


    /**
     * 订单进场运输约定规约;
     */
    private List<OrderTransportationDetailResponse> orderTransportationDetails;

    /**
     * 授权人信息
     */
    private List<OrderAuthorizerResponse> authorizerDetails;
    /**
     * 增补订单设备列表
     */
    private List<SupplyOrderDeviceDetailResponse> supplyOrderDeviceDetails;
    /**
     * 设备变更历史记录
     */
    private List<OrderDeviceHistoryResponse> orderDeviceHistory;
    /**
     * 工作流流程实例id
     */
    private String processInstanceId;
    /**
     * 所有订单设备表，包括增补订单
     */
    private List<OrderDeviceDetailResponse> allOrderDeviceDetails;

}
